开发任务 · Turborepo 中文文档

您所在的位置:网站首页 turbo debug 开发任务 · Turborepo 中文文档

开发任务 · Turborepo 中文文档

2024-07-10 18:50| 来源: 网络整理| 查看: 265

Monorepo中的开发任务 //Development tasks in a Monorepo

绝大多数的开发工作流程都是这样的:

打开一个资源库 在他们开发时运行一个dev任务 在一天结束时,关闭dev任务并关闭版本库

dev很可能是你的版本库中最频繁运行的任务,所以把它做好很重要。

dev任务的类型 //Types of dev tasks

dev任务有多种形式和规模:

为一个网络应用程序运行一个本地开发服务器 运行nodemon,在每次代码改变时重新运行后端进程 在--watch模式下运行测试 使用Turborepo进行设置 //Setup with Turborepo

你应该在你的turbo.json中这样指定你的dev任务。

filename="turbo.json" { "pipeline": { "dev": { "cache": false } } }

由于dev任务不产生输出,所以输出是空的。dev任务也很独特,你很少想缓存它们,所以我们把缓存设置为false。

设置package.json //Setting up package.json

你也应该在你的根目录package.json中提供一个dev任务

filename="package.json" { "scripts": { "dev": "turbo run dev" } }

这使开发人员能够直接从他们的正常任务运行器中运行该任务。

在dev前 运行任务 //Running tasks before dev

在某些工作流程中,你想在运行dev任务 之前 运行任务。例如,生成代码或运行db:migrate任务。

在这些情况下,使用 dependsOn 来表示任何 codegen 或 db:migrate 任务应该在 dev 运行 之前 运行。

filename="turbo.json" { "pipeline": { "dev": { "dependsOn": ["codegen", "db:migrate"], "cache": false }, "codegen": { "outputs": ["./codegen-outputs/**"] }, "db:migrate": { "cache": false } } }

然后,在你的应用程序的 package.json:

filename="apps/web/package.json" { "scripts": { // For example, starting the Next.js dev server "dev": "next", // For example, running a custom code generation task "codegen": "node ./my-codegen-script.js", // For example, using Prisma "db:migrate": "prisma db push" } }

这意味着你的dev任务的用户 不需要担心codegen或迁移他们的数据库-在他们的开发服务器开始之前就已经为他们处理了。

只在某些工作区运行dev任务 //Running dev only in certain workspaces

要想只在某些工作区运行dev任务,你应该使用--filter语法。比如说:

turbo run dev --filter docs

只会在名为docs的工作区运行dev。

使用环境变量 //Using environment variables

在开发过程中,你经常需要使用环境变量。这些变量可以让你自定义你的程序的行为-例如,在开发和生产中指向一个不同的DATABASE_URL。

我们推荐使用一个叫做dotenv-cli的库来解决这个问题。

我们希望每个开发人员都能有一个很好的使用Turbo的体验。下面记录的方法并不符合这些标准。

我们正在为这个问题开发一个一流的解决方案 - 但在你等待的时候,这里有一个次好的解决方案。

Tutorial 在你的根工作区root workspace安装dotenv-cliInstall: npm # Installs dotenv-cli in the root workspace npm add dotenv-cli yarn # Installs dotenv-cli in the root workspace yarn add dotenv-cli --ignore-workspace-root-check pnpm # Installs dotenv-cli in the root workspace pnpm add dotenv-cli --ignore-workspace-root-check 在你的根工作区添加一个.env文件: ├── apps/ ├── packages/ + ├── .env ├── package.json └── turbo.json

添加任何你需要注入的环境变量:

filename=".env" DATABASE_URL=my-database-url 在你的根目录package.json中,添加一个dev脚本。用dotenv和--参数分隔符作为它的前缀: { "scripts": { "dev": "dotenv -- turbo run dev" } }

这将在运行turbo run dev之前从.env中提取环境变量。

现在,你可以运行你的dev脚本: npm npm run dev yarn yarn dev pnpm pnpm dev

而你的环境变量将被填充!在Node.js中,这些都可以在process.env.DATABASE_URL上找到。

如果你使用环境变量来构建你的应用程序,你也应该把你的环境变量添加到你的turbo.json中。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3